热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

掌握IScroll技巧:实现流畅的上拉加载与下拉刷新功能

本文介绍了如何通过掌握IScroll技巧来实现流畅的上拉加载和下拉刷新功能。首先,需要按正确的顺序引入相关文件:1.Zepto;2.iScroll.js;3.scroll-probe.js。此外,还提供了完整的代码示例,可在GitHub仓库中查看。通过这些步骤,开发者可以轻松实现高效、流畅的滚动效果,提升用户体验。
引入文件顺序

1、zepto

2、iscroll.js

3、scroll-probe.js

链接 

完整代码:https://github.com/dirkhe1051931999/writeBlog/tree/master/iscroll

iscroll: https://github.com/cubiq/iscroll/

参数手册:https://blog.csdn.net/sweetsuzyhyf/article/details/44195549/

html
"header">iScroll
"wrapper">
"scroller">
"pullDown" class="">
class="pullDownLabel">
class="pulldown-tips">↓下拉刷新
    "list">
  • Pretty row 1
  • Pretty row 2
  • Pretty row 3
  • Pretty row 4
  • Pretty row 1
  • Pretty row 2
  • Pretty row 3
  • Pretty row 4
  • Pretty row 1
  • Pretty row 2
  • Pretty row 3
  • Pretty row 4
  • Pretty row 1
  • Pretty row 2
  • Pretty row 3
  • Pretty row 4
"pullUp" class="">
class="pullUpLabel">加载更多
"footer">
初始化
     var myScroll,
        pullDown = $("#pullDown"),
        pullUp = $("#pullUp"),
        pullDownLabel = $(".pullDownLabel"),
        pullUpLabel = $(".pullUpLabel"),
        container = $('#list'),
        loadingStep = 0;//加载状态0默认,1显示加载状态,2执行加载数据,只有当为0时才能再次加载,这是防止过快拉动刷新

        pullDown.hide();
        pullUp.hide();
        myScroll = new IScroll("#wrapper", {
            scrollbars: true,
            mouseWheel: false,
            interactiveScrollbars: true,//用户是否可以拖动滚动条
            shrinkScrollbars: 'scale', //按比例的收缩滚动条
            fadeScrollbars: true,  //是否渐隐滚动条
            scrollY:true,
            probeType: 2, //probeType:2  滚动时每隔一定时间触发
            bindToWrapper:true //光标、触摸超出容器时,是否停止滚动
        });
        myScroll.on("scroll",function(){
            if(loadingStep == 0 && !pullDown.attr("class").match('refresh|loading') && !pullUp.attr("class").match('refresh')){
                if(this.y > 60){//下拉刷新操作
                    $(".pulldown-tips").hide();
                    pullDown.addClass("refresh").show();
                    pullDownLabel.text("松手刷新数据");
                    loadingStep = 1;
                    myScroll.refresh();
                // 上拉加载
                }else if(this.y <(this.maxScrollY - 20)){//上拉加载更多
                    pullUp.addClass("refresh").show();
                    pullUpLabel.text("↑上拉加载");
                    loadingStep = 1;
                    pullUpAction();
                }
            }
        });
        // 下拉刷新
        myScroll.on("scrollEnd",function(){
            if(loadingStep == 1){
                if( pullDown.attr("class").match("refresh") ){//下拉刷新操作
                    pullDown.removeClass("refresh").addClass("loading");
                    pullDownLabel.text("正在刷新");
                    loadingStep = 2;
                    pullDownAction();
                }
            }
        });
函数
      function pullDownAction(){
            var li;
            setTimeout(function(){
                $.ajax({
                  type: 'GET',
                  url: './test.php',
                  dataType: 'json',
                  timeout: 300,
                  success: function(data){
                    li = "
  • "+ data +"
  • "; container.prepend(li); }, error: function(xhr, type){ alert('Ajax error!') } }) pullDown.attr('class','').hide(); myScroll.refresh(); loadingStep = 0; $(".pulldown-tips").show(); },500); } function pullUpAction(){ setTimeout(function(){ $.ajax({ type: 'GET', url: './test.php', dataType: 'json', timeout: 300, success: function(data){ li = "
  • "+ data +"
  • "; container.append(li); }, error: function(xhr, type){ alert('Ajax error!') } }) pullUp.attr('class','').hide(); myScroll.refresh(); loadingStep = 0; },500); } document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);

     


    推荐阅读
    • 2019年后蚂蚁集团与拼多多面试经验详述与深度剖析
      2019年后蚂蚁集团与拼多多面试经验详述与深度剖析 ... [详细]
    • 本文详细介绍了如何在Linux系统中搭建51单片机的开发与编程环境,重点讲解了使用Makefile进行项目管理的方法。首先,文章指导读者安装SDCC(Small Device C Compiler),这是一个专为小型设备设计的C语言编译器,适合用于51单片机的开发。随后,通过具体的实例演示了如何配置Makefile文件,以实现代码的自动化编译与链接过程,从而提高开发效率。此外,还提供了常见问题的解决方案及优化建议,帮助开发者快速上手并解决实际开发中可能遇到的技术难题。 ... [详细]
    • 宏基因组学经典文献重现(一):利用ggplot2进行散点图可视化分析
      宏基因组学经典文献重现(一):利用ggplot2进行散点图可视化分析 ... [详细]
    • Android目录遍历工具 | AppCrawler自动化测试进阶(第二部分):个性化配置详解
      终于迎来了“足不出户也能为社会贡献力量”的时刻,但有追求的测试工程师绝不会让自己的生活变得乏味。与其在家消磨时光,不如利用这段时间深入研究和提升自己的技术能力,特别是对AppCrawler自动化测试工具的个性化配置进行详细探索。这不仅能够提高测试效率,还能为项目带来更多的价值。 ... [详细]
    • 表面缺陷检测数据集综述及GitHub开源项目推荐
      本文综述了表面缺陷检测领域的数据集,并推荐了多个GitHub上的开源项目。通过对现有文献和数据集的系统整理,为研究人员提供了全面的资源参考,有助于推动该领域的发展和技术进步。 ... [详细]
    • 这篇文章将揭示 Vue 和 React 组件库中五个鲜为人知的强大工具。这些工具均以纯 JavaScript 实现,功能卓越。其中,async-validator 是一个数据验证插件,不仅预置了 URL 和电子邮件的验证规则,还支持异步验证功能。 ... [详细]
    • 本文深入探讨了 MXOTDLL.dll 在 C# 环境中的应用与优化策略。针对近期公司从某生物技术供应商采购的指纹识别设备,该设备提供的 DLL 文件是用 C 语言编写的。为了更好地集成到现有的 C# 系统中,我们对原生的 C 语言 DLL 进行了封装,并利用 C# 的互操作性功能实现了高效调用。此外,文章还详细分析了在实际应用中可能遇到的性能瓶颈,并提出了一系列优化措施,以确保系统的稳定性和高效运行。 ... [详细]
    • 本文深入探讨了 Vue.js 中异步组件的应用与优化策略。首先,文章介绍了异步组件的基本概念及其在现代前端开发中的重要性。为了确保最佳实践,建议使用 Webpack 作为模块打包工具,因为 Browserify 默认不支持异步组件的加载。接着,详细解释了异步组件的使用方法,并提供了官方文档的相关链接以供参考。此外,文章还讨论了多种优化技巧,包括代码分割、懒加载和性能调优,以提升应用的整体性能和用户体验。 ... [详细]
    • 如何将PHP文件上传至服务器及正确配置服务器地址 ... [详细]
    • Ceph API微服务实现RBD块设备的高效创建与安全删除
      本文旨在实现Ceph块存储中RBD块设备的高效创建与安全删除功能。开发环境为CentOS 7,使用 IntelliJ IDEA 进行开发。首先介绍了 librbd 的基本概念及其在 Ceph 中的作用,随后详细描述了项目 Gradle 配置的优化过程,确保了开发环境的稳定性和兼容性。通过这一系列步骤,我们成功实现了 RBD 块设备的快速创建与安全删除,提升了系统的整体性能和可靠性。 ... [详细]
    • JavaScript技巧:实现Flash右键菜单信息屏蔽的代码解决方案 ... [详细]
    • 【前端开发】深入探讨 RequireJS 与性能优化策略
      随着前端技术的迅速发展,RequireJS虽然不再像以往那样吸引关注,但其在模块化加载方面的优势仍然值得深入探讨。本文将详细介绍RequireJS的基本概念及其作为模块加载工具的核心功能,并重点分析其性能优化策略,帮助开发者更好地理解和应用这一工具,提升前端项目的加载速度和整体性能。 ... [详细]
    • 抖音AI特效风靡网络,真人瞬间变身动漫角色,吴亦凡、PDD和戚薇纷纷沉迷其中
      近期,抖音推出的一款名为“变身漫画”的AI特效在社交媒体上迅速走红,吸引了大量用户尝试。不仅普通网友积极参与,连吴亦凡、PDD和戚薇等明星也纷纷加入,体验将真人瞬间转化为动漫角色的神奇效果。这一特效凭借其高度的趣味性和创新性,迅速成为网络热议的话题。 ... [详细]
    • 优化后的标题:PHP分布式高并发秒杀系统设计与实现
      PHPSeckill是一个基于PHP、Lua和Redis构建的高效分布式秒杀系统。该项目利用php_apcu扩展优化性能,实现了高并发环境下的秒杀功能。系统设计充分考虑了分布式架构的可扩展性和稳定性,适用于大规模用户同时访问的场景。项目代码已开源,可在Gitee平台上获取。 ... [详细]
    • 如何在Android应用中设计和实现专业的启动欢迎界面(Splash Screen)
      在Android应用开发中,设计与实现一个专业的启动欢迎界面(Splash Screen)至关重要。尽管Android设计指南对使用Splash Screen的态度存在争议,但一个精心设计的启动界面不仅能提升用户体验,还能增强品牌识别度。本文将探讨如何在遵循最佳实践的同时,通过技术手段实现既美观又高效的启动欢迎界面,包括加载动画、过渡效果以及性能优化等方面。 ... [详细]
    author-avatar
    甜心菇
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有